package net.xuele.learn.tx;

/**
 * 执行引擎，即驱动--包含原生的线程池的方式、cf的方式，具体的执行方式分为同步执行、异步执行、reactor方式执行
 *
 * 可扩展性的需求，一般确实是通过一个adapter来操作的，需要这个类来进行路由
 *
 *
 *
 */
public interface ExecutorEngine {

    /**
     * 同步执行的意义何在？为什么需要执行器来进行解耦呢？
     */
    void executeSync();

    /**
     * 异步执行的时候，返回值是什么呢？Future还是CompletableFuture，cf更具有可塑性吧！
     *
     * 线程之间如何进行协调呢？
     *
     *
     * mybatis的这些执行全部交由引擎去处理么？？？什么东西可以使用执行引擎来处理呢？
     * 好处在哪里？
     */
    void executeAsync();

    /**
     * 响应式的执行逻辑
     */
    void executeReactively();
}
